package fastsyncer.config;

import java.util.List;
import java.util.Map;

import org.fastsyncer.common.util.ApplicationUtil;

/**
 * 系统参数配置
 * @ClassName: ConfigFactory 
 * @Description: 系统参数配置
 * @author: YangPei
 * @date: 2017年8月2日 下午5:21:01
 */
public class ConfigFactory {

	private static ConfigFactory instance = null;

	private ConfigFactory() {
	}

	public static ConfigFactory getInstance() {
		if (instance == null) {
			synchronized (ConfigFactory.class) {
				instance = new ConfigFactory();
			}
		}
		return instance;
	}

	public List<String> get() {
		return ConfigConstant.DEFAULT_PARAMS;
	}
	
	public void update(Map<String, String> params) {
		// 检查是否有参数
		if (params == null || params.size() < 1) {
			return;
		}

		// 默认可以修改的参数集合
		List<String> def = ConfigConstant.DEFAULT_PARAMS;
		for (Map.Entry<String, String> p : params.entrySet()) {
			String key = p.getKey();

			// 如果沒有运行修改则跳过
			if (!def.contains(key)) {
				continue;
			}

			// 修改系统参数
			ApplicationUtil.setKey(key, p.getValue());
		}
	}

}
